import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import postCssPxtorem from 'postcss-pxtorem'
import autoprefixer from 'autoprefixer'
import WindiCSS from 'vite-plugin-windicss'
import AutoImport from 'unplugin-auto-import/vite'
import { resolve } from 'path'

const timestamp = new Date().getTime()
export default defineConfig(({ mode }) => {
	const env = loadEnv(mode, process.cwd())
	console.log('11======', env)
	return {
		base: './',
		css: {
			postcss: {
				plugins: [
					// postCssPxtorem({
					// 	rootValue: 16,
					// 	propList: ['*']
					// }),
					autoprefixer({
						overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8', '> 1%'],
						grid: true
					})
				]
			}
		},
		resolve: {
			alias: {
				'@': resolve(__dirname, 'src')
			}
		},
		server: {
			https: false, // 是否开启 https
			port: 3000, // 指定开发服务器端口：默认3000
			host: '0.0.0.0', // 监听所有地址
			hmr: true,
			cors: true, // 允许跨域
			open: true, // 启动时自动在浏览器中打开
			proxy: {
				'/api': {
					target: 'https://www.fastmock.site/mock/a89218b805ea574939952d71d949503b/songguo',
					changeOrigin: true,
					// secure: false, // 如果是https接口，需要配置这个参数
					rewrite: (path) => path.replace(/^\/api/, ''),
					headers: {
						Cookie: 'sid=5e459a8d-1d5a-4ce0-bd94-44318da1b8a1;'
					}
				}
			}
		},
		build: {
			// 设置最终构建的浏览器兼容目标
			target: 'es2015',
			// 构建后是否生成 source map 文件
			sourcemap: false,
			//  chunk 大小警告的限制（以 kbs 为单位）
			chunkSizeWarningLimit: 2000,
			// 启用/禁用 gzip 压缩大小报告
			reportCompressedSize: false,
			outDir: 'screen', // 指定输出路径
			assetsDir: './',
			minify: 'terser',
			terserOptions: {
				compress: {
					// 生产环境时移除console、debugger
					drop_console: env.VITE_APP_ENV === 'production' ? true : false,
					drop_debugger: true
				}
			},
			rollupOptions: {
				output: {
					chunkFileNames: `static/js/[name]-${timestamp}.js`, // 入口文件名
					entryFileNames: `static/js/[name]-[hash]-${timestamp}.js`, // 包的入口文件名称
					assetFileNames: `static/[ext]/name-[hash]-${timestamp}.[ext]` // 资源文件(字体、图片等)
				}
			}
		},
		plugins: [
			vue(),
			WindiCSS(),
			AutoImport({
				imports: ['vue', 'vue-router'],
				dts: 'src/auto-imports.d.ts'
			})
		]
	}
})
